import { h } from 'vue'
import text from './text.vue'
import multiText from './multi-text.vue'
import dropdown from './dropdown.vue'
import radio from './radio.vue'
import checkbox from './checkbox.vue'
import cascade from './cascade.vue'
import date from './date.vue'
import dateRange from './date-range.vue'
import datetime from './datetime.vue'
import datetimeRange from './datetime-range.vue'
import number from './number.vue'
import pairs from './pairs.vue'
import attachment from './attachment.vue'
// 基础表单配置
const formConfig: any = {
  text, // 单行文本
  'multi-text': multiText, // 多行文本
  dropdown, //下拉菜单
  radio, // 单选
  checkbox, // 多选
  cascade, // 级联菜单
  date, // 日期
  'date-range': dateRange, // 日期范围
  datetime, // 日期时间
  'datetime-range': datetimeRange, // 日期时间范围
  number, // 数字
  pairs, // 文本（数组）
  attachment
}

// 动态表单
export default {
  name: 'InitForm',
  props: {
    data: {
      type: Object,
      required: true
    },
    form: Object
  },
  setup(props: any) {
    const type = props.data.type1 ? props.data.type1 : props.data.type // type1为客户处特殊处理的类型
    const baseFrom = formConfig[type]
    return () => h(baseFrom, { ...props })
  }
}
